## import python packages used below

import numpy as np

import tensorflow as tf

# TensorFlow 的图像表示为 [图像数目，长，宽，色彩通道数] 的四维张量
# 这里我们的输入图像 image 的张量形状为 [1, 7, 7, 1]
image = np.array(
    [
        [
            [0, 0, 0, 0, 0, 0, 0],
            [0, 1, 0, 1, 2, 1, 0],
            [0, 0, 2, 2, 0, 1, 0],
            [0, 1, 1, 0, 2, 1, 0],
            [0, 0, 2, 1, 1, 0, 0],
            [0, 2, 1, 1, 2, 0, 0],
            [0, 0, 0, 0, 0, 0, 0],
        ]
    ],
    dtype=np.float32,
)
image = np.expand_dims(image, axis=-1)
W = np.array([[[0, 0, -1], [0, 1, 0], [-2, 0, 2]]], dtype=np.float32)
b = np.array([1], dtype=np.float32)


model = tf.keras.models.Sequential(
    [
        tf.keras.layers.Conv2D(
            filters=1,  # 卷积层神经元（卷积核）数目
            kernel_size=[3, 3],  # 感受野大小
            kernel_initializer=tf.constant_initializer(W),
            bias_initializer=tf.constant_initializer(b),
        )
    ]
)
